# -*- coding: utf-8 -*-
#
# File: jornal.py
#
# Copyright (c) 2007 by LM
# Generator: ArchGenXML Version 1.5.1 svn/devel
#            http://plone.org/products/archgenxml
#
# GNU General Public License (GPL)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#

__author__ = """LM <leonardo.mirandas@gmail.com>"""
__docformat__ = 'plaintext'

from AccessControl import ClassSecurityInfo
from Products.Archetypes.atapi import *
from Products.Archetypes.SQLStorage import *
from Products.GrupoVisao.config import *
from vocabularies import *

##code-section module-header #fill in your manual code here
##/code-section module-header

schema = Schema((

    StringField(
        name='nome',
        widget=StringWidget(
            size="70",
            label='Nome',
            description="Informe o seu nome",
            label_msgid='GrupoVisao_label_nome',
            i18n_domain='GrupoVisao',
        ),
        required=1,
    ),

    StringField(
        name='email',
        widget=StringWidget(
            size="70",
            label='E-mail',
            description="Informe o seu e-mail",
            label_msgid='GrupoVisao_label_email',
            i18n_domain='GrupoVisao',
        ),
        validator = ('isEmail',),
        required=1
    ),

    DateTimeField(
        name='dat_nascimento',
        widget=CalendarWidget(
            label="Data de Nascimento",
            description="Informe a data de nascimento.",
            format="%d/%m/%Y",
            date_only=1,
            show_hm=0,
            i18n_domain='GrupoVisao',
        ),
        required=1
    ),

    StringField(
        name='cod_sexo',
        widget=SelectionWidget(
            label='Sexo',
            description="Informe o sexo",
            label_msgid='GrupoVisao_label_sexo',
            i18n_domain='GrupoVisao',
        ),
        vocabulary=VOCAB_SEXO,
        enforceVocabulary=1,
        required=1
    ),

    StringField('cod_estado_civil',
        widget=SelectionWidget(
            label="Estado Civil",
            description="Informe o estado civil.",
            format="select",
            i18n_domain='GrupoVisao',
        ),
        enforceVocabulary=1,
        vocabulary=VOCAB_ESTADO_CIVIL,
        required=1
    ),

    StringField(
        name='num_telefone',
        widget=StringWidget(
            maxlenght="20",
            size="20",
            label='Telefone',
            description="Informe o seu telefonte",
            label_msgid='GrupoVisao_label_telefone',
            i18n_domain='GrupoVisao',
        )
    ),

    StringField(
        name='num_celular',
        widget=StringWidget(
            maxlenght="20",
            size="20",
            label='Celular',
            description="Informe seu celular",
            label_msgid='GrupoVisao_label_telefone',
            i18n_domain='GrupoVisao',
        )
    ),

    StringField(
        name='rua',
        widget=StringWidget(
            label='Rua',
            description="Informe a sua rua",
            label_msgid='GrupoVisao_label_rua',
            i18n_domain='GrupoVisao',
        )
    ),

    StringField(
        name='bairro',
        widget=StringWidget(
            label='Bairro',
            description="Informe o seu bairro",
            label_msgid='GrupoVisao_label_bairro',
            i18n_domain='GrupoVisao',
        )
    ),

    StringField(
        name='cidade',
        widget=StringWidget(
            label='Cidade',
            description="Informe a sua cidade",
            label_msgid='GrupoVisao_label_cidade',
            i18n_domain='GrupoVisao',
        ),
        required=1,
    ),

    StringField(
        name='estado',
        widget=SelectionWidget(
            label='Estado',
            description="Informe o seu estado",
            label_msgid='GrupoVisao_label_estado',
            i18n_domain='GrupoVisao',
        ),
        required=1,
        vocabulary=VOCAB_ESTADOS,
        enforceVocabulary=1
    ),

    StringField(
        name='formacao',
        widget=SelectionWidget(
            label='Formação',
            description="Informe a sua formação",
            label_msgid='GrupoVisao_label_formacao',
            i18n_domain='GrupoVisao',
        ),
        required=1,
        vocabulary=VOCAB_FORMACAO,
        enforceVocabulary=1
    ),

    TextField(
        name='cursos',
        widget=RichWidget(
            label='Cursos',
            description="Descreva os seus principais cursos e especializações",
            label_msgid='GrupoVisao_label_cursos',
            i18n_domain='GrupoVisao',
        ),
        allowable_content_types=('text/plain', 'text/structured', 'text/html', 'application/msword',),
        default_output_type='text/html',
        required=1
    ),

    TextField(
        name='experiencia',
        widget=RichWidget(
            label='Experiência Profissional',
            description="Descreva sua experiência profissional (empresa/cargo/périodo/atividades realizadas)",
            label_msgid='GrupoVisao_label_esperiencia',
            i18n_domain='GrupoVisao',
        ),
        allowable_content_types=('text/plain', 'text/structured', 'text/html', 'application/msword',),
        default_output_type='text/html',
        required=1
    ),
),
)

##code-section after-local-schema #fill in your manual code here
##/code-section after-local-schema

curriculo_schema = BaseSchema.copy() + \
    schema.copy()

##code-section after-schema #fill in your manual code here
curriculo_schema['title'].required = 0
curriculo_schema['title'].widget.visible = {'view':'invisible', 'edit':'invisible'}
##/code-section after-schema

class curriculo(BaseContent):
    """
    """
    security = ClassSecurityInfo()
    __implements__ = (getattr(BaseContent,'__implements__',()),)

    # This name appears in the 'add' box
    archetype_name = 'Curriculo'

    meta_type = 'curriculo'
    portal_type = 'curriculo'
    allowed_content_types = []
    filter_content_types = 0
    global_allow = 1
    content_icon = 'curriculo.gif'
    immediate_view = 'base_view'
    default_view = 'base_view'
    suppl_views = ()
    typeDescription = "curriculo"
    typeDescMsgId = 'description_edit_curriculo'

    _at_rename_after_creation = True

    schema = curriculo_schema

    actions =  (

       {'action': "string:${object_url}/curriculo_view",
        'category': "object",
        'id': 'view',
        'name': 'View',
        'permissions': ("View",),
        'condition': 'python:1'
       },

    )

    ##code-section class-header #fill in your manual code here
    ##/code-section class-header

    # Methods
    security.declarePublic('setTitle')
    def setTitle(self,valor):
        """seta o titulo do objeto """
        request = self.REQUEST
        titulo = request.get('nome')
        self.getField('title').set(self, titulo)

    def getValueEscolaridade(self,chave):
        """retorna o titulo do estado """
        escolaridade = ''
        if chave == '1':
            escolaridade = 'Ensino Médio Completo'
        elif chave == '2':
            escolaridade = 'Superior Incompleto'
        elif chave == '3':
            escolaridade = 'Superior Completo'
        elif chave == '4':
            escolaridade = 'Pós-Graduação'
        elif chave == '5':
            escolaridade = 'Mestrado'
        elif chave == '6':
            escolaridade = 'Doutorado'
        else:
            escolaridade = 'Outro'
        return escolaridade


    def getValueEstadoCivil(self,chave):
        """retorna o titulo do estado """
        estado = ''
        if chave == '1':
            estado = 'Solteiro(a)'
        elif chave == '2':
            estado = 'Casado(a)'
        elif chave == '3':
            estado = 'Divorciado(a)'
        elif chave == '4':
            estado = 'Viúvo(a)'
        elif chave == '5':
            estado = 'União estável'
        else:
            estado = 'Outro'
        return estado

registerType(curriculo, PROJECTNAME)
# end of class jornal

##code-section module-footer #fill in your manual code here
##/code-section module-footer



